#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QtGui>
#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT
    
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    
private slots:
    void setFontFamily(const QString &f);

    void onSizePlus();
    void onSizeMinus();

    void onDxPlus();
    void onDxMinus();
    void onDyPlus();
    void onDyMinus();

    void onCodeplus();
    void onCodeMinus();
    void onCodeEnterUcs2();
    void onCodeEnterUtf8();
    void onCodeEnterStr();

    void onPicWEnter();
    void onPicHEnter();

    void onBgWidthPlus();
    void onBgWidthMinus();
    void onBgHeightPlus();
    void onBgHeightMinus();

    void onCreateAscii(); //
    void onCreatGB2312();
    void onCreateGBK();
    void onCreateCJK();
//    void onCreateAscii2();
    void onCreateKana();

//    void onCheckSurround();
//    void onEnterSurroundWidth();
    void onCheckWithWidth();
    void onCheckOutputImg();
    void onTest();

//    void onSelectBit(const QString &b);
private:
    Ui::MainWindow *ui;

    QPixmap *pixmap;
    int fontsize;
    int img_w;
    int img_h;
    int dx;
    int dy;
    QPen *pens; //
//    QPen pen_g;//
//    QPen pen_g2;
    QColor black;

    bool is_mapping_table;
//    bool is_Surround;
//    int stroke_width;
    /** 每个点占用多少位 */
    int bit_per_point;
    int out_color_num;
    bool is_output_width;
    bool is_output_img;
    int getOutputMode();        // bit0 是否使用映射表， bit1 是否带宽度, 第二个字节为每个点占用多少位

    QFont font;
    uchar code[6];
    int ucs2code;
    long utf8code;

    void changeFontSize();
    void changeCanvasSize();
    void ucs2ToUtf8();
    void utf8ToUcs2();

    bool is_creating;
    void drawChar();
    void drawCharBone();
//    int getFontWidth();
//    void createFontTest(const QString &name, int start, int count);
    void createFont(int start, int count,
                                QDataStream &fbin, QDataStream &range, QTextStream &text);
    void createFont2(int start, int count,
                                QDataStream &fbin, QDataStream &range, QTextStream &text);
};

#endif // MAINWINDOW_H
